Distributed file systems offer many compelling advantages in establishing high performance computing environments. For example, in a cluster of nodes operating as a distributed file system, adding nodes to the cluster can allow for the resources of the cluster to expand at large scale, creating clusters that can include hundreds of nodes. In some distributed file systems, there is a need to process domain name server (“DNS”) requests by clients of the distributed file system. Clients can connect to one node of the cluster and request that a DNS address be resolved.
One way to process DNS requests would be for each individual node to maintain a local DNS cache that maintained entries for every address that has been historically resolved by the cluster. If the node did not have the specific DNS request cached locally, the node could look up the DNS address in an external DNS server and then store the result in the node's local cache. However, having each node in cluster of nodes store large amounts of redundant DNS data could consume large amounts of storage and/or cache resources. In addition, the amount of backplane communications necessary to synchronize the local DNS caches among hundreds of nodes could consume high amounts of network resources. Thus, there exists a need to efficiently maintain a distributed DNS cache among nodes in a cluster of nodes operating as a distributed file system that both reduces the amount of locally cached DNS addresses in each node as well as reducing the amount of intra-cluster communication required to maintain the distributed DNS cache.